package com.chuji.crmcj.act;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.chuji.crmcj.R;
import com.chuji.crmcj.fragment.MagClientLoseFragment;
import com.chuji.crmcj.fragment.MagOrderLoseFragment;
import com.nineoldandroids.view.ViewHelper;

import java.util.ArrayList;
import java.util.List;

public class MagLoseApproveActivity extends BaseActivity {
    //返回
    private ImageView mIv_Back;
    //客户战败按钮
    private Button mBtn_client_lose;
    //订单战败按钮
    private Button mBtn_order_lose;
    //蓝色下划线
    private View mLose_indicate_line;
    //显示
    private ViewPager mVp_sell_lose_approve;
    /*碎片集合*/
    private List<Fragment> fragments;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mag_lose_approve);
        //初始化组件
        mIv_Back = (ImageView) findViewById(R.id.iv_Back);
        mBtn_client_lose = (Button) findViewById(R.id.btn_client_lose);
        mBtn_order_lose = (Button) findViewById(R.id.btn_order_lose);
        mLose_indicate_line = (View) findViewById(R.id.lose_indicate_line);
        mVp_sell_lose_approve = (ViewPager) findViewById(R.id.vp_sell_lose_approve);
        //数据
        InitTextView();
        //返回
        mIv_Back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                finish();
            }
        });
        mVp_sell_lose_approve.setOnPageChangeListener(new OnMainPageChangeListener());
        mBtn_client_lose.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mVp_sell_lose_approve.setCurrentItem(0);
            }
        });
        mBtn_order_lose.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mVp_sell_lose_approve.setCurrentItem(1);
            }
        });
    }

    @Override
    protected void initData() {

    }

    @Override
    protected void initView() {

    }

    @Override
    protected void initListener() {

    }
    /**
     * 数据
     */
    protected void InitTextView() {
           /*详情界面的两个功能  填充效果*/
        fragments = new ArrayList<Fragment>();
        fragments.add(new MagClientLoseFragment());
        fragments.add(new MagOrderLoseFragment());
        MyPageAdapter myPageAdapter = new MyPageAdapter(getSupportFragmentManager(),fragments);
        mVp_sell_lose_approve.setAdapter(myPageAdapter);
        mVp_sell_lose_approve.setOffscreenPageLimit(2);
        // 高亮第一个标签
        updateTabs(0);
        // 初始化指示器宽度
        int screenW = getWindowManager().getDefaultDisplay().getWidth();
        mLose_indicate_line.getLayoutParams().width = screenW / 2;
        mLose_indicate_line.requestLayout(); // 重新计算大小，并刷新控件
    }

    /**
     * 高亮position选中页面对应的标签，并将其他的变暗
     */
    private void updateTabs(int position) {
        updateTab(position, 0, mBtn_client_lose);
        updateTab(position, 1, mBtn_order_lose);
    }

    /**
     * 判断当前要处理的 tabPosition 是否是选中的 position，并修改tab的高亮状态
     */
    private void updateTab(int position, int tabPosition, TextView tab) {
        int blue = getResources().getColor(R.color.blue);
        int halfWhite = getResources().getColor(R.color.font3);
        if (position == tabPosition) {
            // tab对应的页面被选中
            tab.setTextColor(blue);
        } else {
            // tab对应的页面没有被选中
            tab.setTextColor(halfWhite);
        }
    }

    public class MyPageAdapter extends FragmentPagerAdapter {

        private List<Fragment> fragments;

        public MyPageAdapter(FragmentManager fm, List<Fragment> fragments) {
            super(fm);
            this.fragments = fragments;
        }

        @Override
        public Fragment getItem(int position) {
            return fragments.get(position);
        }

        @Override
        public int getCount() {
            return fragments.size();
        }
    }

    private class OnMainPageChangeListener implements ViewPager.OnPageChangeListener {
        @Override
        /** 当touch事件发生时回调此方法 */
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            // 偏移位置 = 手指划过屏幕的百分比 * 指示器宽度
            int offsetX = (int) (positionOffset * mLose_indicate_line.getWidth());
            // 起始位置 = position * 指示器宽度
            int startX = position * mLose_indicate_line.getWidth();
            // 指示器移动的位置 = 起始位置 + 偏移位置
            int translationX = startX + offsetX;
            ViewHelper.setTranslationX(mLose_indicate_line, translationX);
        }

        @Override
        /** 当见面选中状态发生变更时会回调此方法 */
        public void onPageSelected(int position) {
            // 高亮选中页面对应的标签，并将其他的变暗
            updateTabs(position);
        }

        @Override
        /** 当页面的滑动状态发生变更会回调此方法 */
        public void onPageScrollStateChanged(int state) {

        }
    }
}
